草庐IT

Android PlusOneButton 不初始化

全部标签

c++ - 无法在 C++ 中初始化指针数组

我有一个指向名为“表”的结构(该结构称为节点)的指针数组。我在类中这样声明数组:Node*table;然后,在另一种方法中,我初始化表:this->table=newNode[this->length];一切正常。this->length是一个有效条目,this->table指向正确的数组,等等。但是,然后我尝试更改元素的值:for(inti=0;ilength;i++){this->table[i]=newNode;}甚至for(inti=0;ilength;i++){this->table[i]=0;}一切都开始出现问题。为什么我不能将这些指针设置为任何内容?这是我得到的错误:(其

C++:在初始化程序中类静态变量的定义中查找名称

我有简单的代码:#includeclassA{public:staticinta;};voida(){}intA::a=[](){static_assert(std::is_function::value,"'a'isnotafunction");return777;}();intmain(){return0;}在编译期间(使用g++4.8.1和clang3.4)关于'a'的getstatic断言错误不是函数。但是在assert内部,在decltype中我输入了'a'(它是一个函数)而不是A::a。编译器不应该采用函数(a)而不是类成员(A::a)吗?您能否在解释C++规范的地方给出任

c++ - 将大量数据初始化到 C++ 容器中的最佳方法?

例如:InitEmployee(){vectoremployeeList={Employee("ClarkKent",0),Employee("BruceWayne",1),...Employee("HalJordan",65535)}}我无法从文件或数据库中查询,因为该程序需要在单个可执行文件中,因此所有常量数据都必须进行硬编码。我实际上使用boost的multi_index_container通过名称和id进行快速查找,但为了简单起见,我在这里使用vector作为示例。问题是我不能在没有堆栈溢出的情况下在单个函数中拥有那么多(2^16)常量数据。有没有更好的方法在不拆分函数的情况下

c++ - 使用 shared_ptr<void> 初始化结构

我一直遇到一个错误nomatchingconstructorforinitializationof'std::shared_ptr'这是有道理的,但我不知道从哪里开始。这是我正在使用的。#includestructContainer{inttype;std::shared_ptrpayload;Container(intt,constvoid*p):type(t),payload(p){}};intmain(){return0;}我正在尝试使用shared_ptr制作一个通用容器类型为void.我打算对类型进行切换,然后将有效负载转换为适当的类型。我想我可以做类似Containerct

c++ - 如何初始化boost::process::child(boost process 0.5)?

我想存储boost::process的子进程,但不知道如何初始化它操作系统:win764位编译器:msvc200832位boost:1_55_0简化后的例子#include#include#include#includevoidtest_boost_system(){namespacebp=boost::process;namespacebpi=boost::process::initializers;//bp::childchild;//#1boost::system::error_codeec;bp::childchild_2=bp::execute(bpi::run_exe("l

c++ - 使用基类对象 C++ 初始化子类?

所以,标题可能有点困惑,但这是我的问题:我有一个父类(superclass)(我们称它为SupClass)和一个继承自SupClass的子类(我们称它为InhClass)。现在,我想为我的InhClass创建一个构造函数,它接收一个SupClass对象并用它初始化InhClass的“SupClass部分”。下面是一个代码示例,试图说明这一点:ClassSupClass{public:SupClass(){//InitializeSupClassobject}};ClassInhClass:privateSupClass{public:InhClass(SupClassobj){//In

c++ - 在成员初始化列表中使用 std::function

我有一个类型定义:typedefS32(iMyDataClass1::*getDataFunction_t)(void);和类型:structfunctionMap_t{std::vectorpDataFunctionTable;structdataRequestor_tdataRequestor;};然后我有一个成员变量:functionMap_tFnMap1;然后我在成员初始值设定项列表中设置:myClass::myClass():FnMap1({{&iMyDataClass1::getData1,&iMyDataClass1::getData2,&iMyDataClass1::g

c++ - 如何使用大 vector 初始化来避免 "compiler limit: compiler stack overflow"?

在我的单元测试中,我得到以下编译器错误:Theerrormessageindicatesasfollows:'fatalerrorC1063:compilerlimit:compilerstackoverflow'这是由一些生成的header引起的,其中包含:std::vectorGetTestData(){return{0x1,0x2,0x3};//Verylarge500kbofdata}如何在不使MSVC崩溃的情况下以这种方式使用vector?请注意,代码在clang和gcc中构建正常。 最佳答案 尝试将您的数据放入一个常量静

c++ - 成员初始化器列表中的初始化

这个问题在这里已经有了答案:Constructorinitialization-listevaluationorder(3个答案)关闭7年前。classA{public:inta,b;A():a(1){b=3;}};如果我们创建这个类的一个对象:Aobj;那么a和b哪个先初始化?b=3赋值的过程中会不会有默认构造函数的参与?我指的是提供的答案:Ifyouuseassignmentthenthefieldswillbefirstinitializedwithdefaultconstructorsandthenreassigned(viaassignmentoperator)withact

c++ - 经典的 C++ 静态初始化顺序惨败重温

最近遇到一个奇怪的情况。让我们考虑以下类(放在header.h中):#ifndefHEADER_H#defineHEADER_H#includetemplateclassClass{public:typedefstd::set*>instances_list;explicitClass(constV&Value):m_value(Value){s_instances.insert(this);}private:staticinstances_lists_instances;Vm_value;};templatetypenameClass::instances_listClass::s_